-
Notifications
You must be signed in to change notification settings - Fork 15k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Wayland general CSD fixes #34955
Conversation
7aa2e63
to
993dfbb
Compare
993dfbb
to
ae87928
Compare
patches/chromium/add_maximized_parameter_to_linuxui_getwindowframeprovider.patch
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm good with this change, only with one question: do you know whether Chrome browser has the same problem? If it has, can you try to submit this patch to Chromium as well? If it does not have, do you know why?
This only affects |
9713e08
to
54e6ddc
Compare
54e6ddc
to
e20536f
Compare
Rebasing for conflict resolution broke backporting so the branches suitable for backporting are now |
0e2309a
to
e273cc6
Compare
I was unable to backport this PR to "20-x-y" cleanly; |
@msizanoen1 has manually backported this PR to "20-x-y", please check out #35206 |
@msizanoen1 has manually backported this PR to "19-x-y", please check out #35207 |
Finally working windows decorations on Gnome with Wayland! Thank you :) @msizanoen1, do you know windows controls (maximize, minimize, close) are drawn on the left when my whole system has them on the right? Is that a bug? |
This looks like your system is misconfigured. Window decorations always has the correct position on my machine with the window controls position configured using |
Thank you again :) It was configured to the right side in the |
Are the windows not fully maximizing issue still a thing? I tried electron 22 and I still get the issue, on GNOME 43. |
Are you sure you are using the correct Electron binary with the |
I figured out the issue - every other theme works but the Dracula GTK theme I'm using, for some reason, so that must be a problem there. Thanks regardless! |
* fix: broken wayland window decorations due to botched chromium update The `GetTitlebarBounds().height()` is obviously intended to be placed in the `top` parameter, which used to be the second one before upstream removed multi-parameter `gfx::Rect::Inset`, but it's the first parameter for `gfx::Insets::TLBR`, which was intended to replace the removed `Inset` function. However, whoever updated Chromium kept the parameter unchanged, causing the title bar height to be passed to the `left` parameter, causing the window title bar to be unclickable. * fix: wayland window top bar buttons unclickable Use NonClientFrameView::TargetForRect for the ClientFrameViewLinux implementation because the default inherited from FramelessView blocks any non-HTCLIENT events. * fix: add maximized parameter to LinuxUI::GetWindowFrameProvider * fix: pass frame_->IsMaximized() to GetWindowFrameProvider This ensures that the toolkit renders the window decorations in maximized mode while the window is maximized to ensure that there is no empty space around the window.
* fix: broken wayland window decorations due to botched chromium update The `GetTitlebarBounds().height()` is obviously intended to be placed in the `top` parameter, which used to be the second one before upstream removed multi-parameter `gfx::Rect::Inset`, but it's the first parameter for `gfx::Insets::TLBR`, which was intended to replace the removed `Inset` function. However, whoever updated Chromium kept the parameter unchanged, causing the title bar height to be passed to the `left` parameter, causing the window title bar to be unclickable. * fix: wayland window top bar buttons unclickable Use NonClientFrameView::TargetForRect for the ClientFrameViewLinux implementation because the default inherited from FramelessView blocks any non-HTCLIENT events. * fix: add maximized parameter to LinuxUI::GetWindowFrameProvider * fix: pass frame_->IsMaximized() to GetWindowFrameProvider This ensures that the toolkit renders the window decorations in maximized mode while the window is maximized to ensure that there is no empty space around the window.
Description of Change
General Wayland client-side decoration fixes. Check individual commits for more information.
Supersedes #34945, #34948
Fixes #34820, fixes #33161
Checklist
Release Notes
Notes: Fix support for Wayland client-side decorations